const Event = require('../models/Event');

// 创建事件
const createEvent = async (req, res) => {
  try {
    const { user_id, type, data } = req.body;

    // 验证必要字段
    if (!user_id || !type) {
      return res.status(400).json({ error: '请提供用户ID和事件类型' });
    }

    // 创建事件
    const event = await Event.create(user_id, type, data);

    res.status(201).json(event);
  } catch (err) {
    console.error('创建事件错误:', err);
    res.status(500).json({ error: '创建事件失败' });
  }
};

// 获取用户的所有事件
const getUserEvents = async (req, res) => {
  try {
    const { userId } = req.params;

    // 获取用户的所有事件
    const events = await Event.findByUserId(userId);

    res.json(events);
  } catch (err) {
    console.error('获取用户事件错误:', err);
    res.status(500).json({ error: '获取用户事件失败' });
  }
};

// 根据类型获取用户事件
const getUserEventsByType = async (req, res) => {
  try {
    const { userId, type } = req.params;

    // 获取特定类型的事件
    const events = await Event.findByTypeAndUser(type, userId);

    res.json(events);
  } catch (err) {
    console.error('获取用户事件错误:', err);
    res.status(500).json({ error: '获取用户事件失败' });
  }
};

module.exports = {
  createEvent,
  getUserEvents,
  getUserEventsByType
};